Mit der Einführung von Gutenberg als neuem Standardeditor sorgte WordPress für Unruhe in der Community. Die Wünsche nach weiteren und besseren Funktionen reißen nicht ab und gehen in alle Richtungen. Wie wird sich WordPress in den kommenden fünf Jahren entwickeln? Lässt sich so eine Prognose überhaupt stellen?
Wissen Sie, was ein Wolpertinger ist? In Bayern kennt das jedes Kind. Es handelt sich dabei um ein Fabelwesen, das unterschiedliche Gestalten annehmen kann. So gibt es Hasen mit Hirschgeweih genauso wie Füchse mit Hasenohren. Kaum vorstellbar, oder? Warum und wieso es existiert, ist unbekannt. Vermutlich, weil Menschen immer versuchen, alles miteinander zu verbinden.
Für die Recherchen zu meinem monatlichen WordPress-Newsletter lese ich mich oft tief in die Diskussionen ein, die in der WordPress-Community entstehen. Wenn ich mir ansehe, was allein im letzten Jahr passiert ist, steht fest: WordPress ist auch ein Wolpertinger! In der Vergangenheit kam da ein Editor dran, ein bisschen JavaScript (aka jQuery), nun wurde noch React irgendwo drangeklebt. Natürlich nicht zu vergessen: das REST-API, das augenscheinlich mit der Einführung schon wieder veraltet war, weil mittlerweile alle lieber GraphQL nutzen.
Mit WordPress wollen wir ein System, das nur Vorteile hat, alle Bedürfnisse befriedigt und allen Ansprüchen genügt. Für die Nutzer genauso wie für die Entwickler. Die eierlegende Wollmilchsau eben. Die ist auch so ein Wolpertinger.
WordPress feierte Anfang des Jahres seinen fünfzehnten Geburtstag. Es ist in der Pubertät. Auf neudeutsch würde man sagen: WordPress will disruptiv sein, will die Branche umkrempeln. Jetzt ist es aber schon auf Platz eins der meistgenutzten Contentmanagementsysteme. Mehr als ein Drittel aller Websites im Internet laufen mit WordPress [1]. Was will man denn noch erreichen?
WordPress in der Zukunft
In diesem Artikel möchte ich einen Blick aus der Vergangenheit in die Zukunft werfen. Was aber bedeutet Zukunft an dieser Stelle eigentlich?
Wer Ray Kurzweil – Visionär, Erfinder, Autor, Venture Capitalist, Mitgründer der Singularity University und aktuell Leiter der technischen Entwicklung bei Google – kennt oder schon einmal ein Buch von ihm gelesen hat, weiß: Die Analyse der Geschichte der Technologie zeigt, dass die Geschwindigkeit des technologischen Wandels exponentiell steigt (Accelerating Change). Entgegen unserer Intuition entfaltet sich die Zukunft nicht linear, sondern exponentiell, was es schwierig macht, vorherzusagen, was wann als Nächstes passieren wird. Deshalb überrascht uns das Tempo des technologischen Fortschritts und wir befinden uns oft in einer Situation [2] wie in Abbildung 1 dargestellt.
Abb. 1: Das Tempo des technologischen Fortschritts ist schneller als angenommen
Die Wahrscheinlichkeit, dass ich mit meinen Aussagen nicht so ganz richtig liege, ist also sehr hoch. Selbst wenn ich mich nur auf die nächsten fünf Jahre beschränke, liegt es nahe, dass ich mir die Veränderungen zum jetzigen Zeitpunkt nicht ausmalen kann. Aber ich versuche es trotzdem. Denn einiges ist schon bekannt und geplant.
Mehr JavaScript
Mehr als 100 000 Entwickler haben an der Developer Survey 2019 von Stack Overflow teilgenommen [3]. Dabei wird JavaScript – wie schon die sechs Jahre zuvor – als eine der populärsten Technologien aufgeführt. Uns Entwickler trügt das Gefühl also nicht: Fast jedes Projekt hat mittlerweile einen gewissen JavaScript-Anteil. WordPress schon immer. Und es wird immer mehr.
Wer schon einmal einen Blick auf den neuen Blockeditor (Gutenberg) geworfen hat, weiß, wo die Reise hingeht. Mit ihm ist React fester Bestandteil von WordPress geworden. Aktuell wird der Editor so aufbereitet, dass er auch außerhalb des Post-Editing-Screens laufen kann. Das macht es möglich, dass auch Projekte außerhalb von WordPress den Editor nutzen können. Drupal hat bereits ein eigenes Gutenberg-Modul [4], und für Laravel-Projekte kann man das Laraberg-Paket [5] nutzen. Das noch relativ junge October CMS, das auf Laravel aufbaut, arbeitet ebenfalls an einer Integration [6].
Im Hintergrund tauscht der Editor Daten über das REST-API aus. Und das ist nach wie vor in PHP programmiert. Absichten, das gesamte Backend in JavaScript umzuschreiben, gibt es nicht. Ich glaube, die Community würde ohnehin auf die Barrikaden gehen. Immerhin sorgte die Einführung von Gutenberg ja schon für große Aufregung. Natürlich wurden hier Fehler gemacht und nicht immer alles perfekt durchdiskutiert. Trotzdem war der Blockeditor aber eine folgerichtige Entscheidungen. WordPress folgt damit seinem Leitspruch: „Democratize Publishing“. Die Nutzer verlangten in den letzten Jahren nach einfacheren Möglichkeiten, Webseiten interaktiv zu gestalten. Und mit Gutenberg gibt WordPress ihnen genau das.
Dass das kein Hirngespinst ist, zeigt die Beliebtheit des Elementor Page Builders. Das Plug-in hat derzeit mehr als zwei Millionen aktive Installationen und ist damit auf Platz 2 der meistgenutzten Plug-ins, die in den letzten 36 Monaten veröffentlicht wurden [7]. Auf Platz 1 liegt das ClassicPress-Editor-Plug-in, das den neuen Block-Editor wieder durch den alten ersetzt. Ich denke aber, dass zum einen viele Websites noch nicht bereit sind, auf dem neuen Editor aufzubauen und deshalb den alten Editor noch brauchen, oder sie den Classic-Editor benötigen, weil sie bereits einen anderen Page Builder nutzen. Das wird sich jedoch in den nächsten Jahren relativieren.
Gutenberg ist also Thema Nummer eins in der WordPress-Welt. Es ist nicht verwunderlich, dass sich die Entwicklung in den nächsten Jahren weiter darauf fokussieren wird. Auf der alljährlichen State of the Word [8] hat Matt Mullenweg, Mitgründer von WordPress, seine weiteren Pläne vorgestellt:
-
Phase 2: Menü-, Widget- und Theme-Content-Bereiche in den neuen Blockeditor bringen (2019)
-
Phase 3: Fokus auf Zusammenarbeit, Mehrbenutzerbearbeitung und Workflows (bis 2020)
-
Phase 4 (vielleicht wieder ein Stückchen weg von Gutenberg): Unterstützung für mehrsprachige Webseiten in WordPress (2020+)
Moderneres PHP
Damit sind wir beim nächsten Stichwort angekommen: PHP. In der bereits genannten Developer Survey wurde WordPress zur unbeliebtesten Plattform gewählt. Das liegt sicher auch daran, dass PHP selbst in der Rangliste der unbeliebtesten Sprachen immer weiter nach oben klettert. Sie lag im Jahr 2018 auf Platz 13, in der aktuellen Umfrage jedoch schon auf Platz 5. Aber woran liegt das?
Wenn man im Internet stöbert, findet man immer wieder dieselbe Aussage: Dadurch, dass PHP so einfach zu erlernen sei (die Einstiegshürden sollen eher geringer sein), sorge es dafür, dass es viele User gibt, die nur Halbwissen darüber haben. Das wiederum sorge dafür, dass halbgarer Code im Internet verstreut werde. Und das wiederum sorge dafür, dass dieser Code oft geteilt werde. Aber kann das wirklich das Problem sein?
Aus eigener Erfahrung kann ich sagen, dass immer noch PHP-Code im Umlauf ist, der zehn Jahre oder älter ist. Dieser zumeist prozedural geschriebene Code ist oft schwer zu lesen, zu verstehen und am Ende auch schwer zu pflegen. Aber genauso ist WordPress aufgebaut: aus der Historie gewachsen. Das heißt, wir haben im Kern fast ausschließlich prozedural programmierten Code, der im Laufe der Zeit durch ein paar Klassen ergänzt wurde. Entstanden ist also genau das, was Entwickler nicht haben wollen: ein Wolpertinger. Eine Mischung aus funktionellem und objektorientiertem Code, der schwer zu erlernen ist, weil die Codebasis riesig ist.
Doch es ändert sich etwas. Seit zwei Jahren erlebt PHP einen Entwicklungsschub. Ende 2015 erschien PHP 7.0 und ebnete so den Weg hin zu freundlicherem, objektorientiertem Code: skalare Typdeklarationen und Rückgabetyp-Deklarationen, anonyme Klassen etc. In PHP 7.1 kamen dann Dinge wie Nullable Types und Void-Funktionen, und in PHP 7.2 schließlich libsodium als Kryptografiebibliothek.
Das alles macht den Entwickler von heute ein wenig glücklicher. Doch WordPress bleibt nach wie vor WordPress, und am Kern andert sich (vorerst) nichts, weil die Prioritäten – wie oben erwähnt – zumindest bis 2022 bei anderen Dingen liegen. Bei Entwicklern wird WordPress also weiterhin unbeliebt bleiben. In den Stack-Overflow-Umfragen 2020 bis 2023 wird es sich vermutlich weiterhin auf den vordersten Plätzen der unbeliebtesten Webplattformen befinden. Zumindest aus PHP-Sicht. Danach könnte sich WordPress aber in eine reine Backend-Webplattform verwandeln. Zumindest wenn die Community es schafft, den JavaScript-Weg zu gehen. Denn die Geschichte der JavaScript-Entwicklung war auch nicht immer rosig. Im Web findet man genügend Stimmen, die von JavaScript behaupten, was in ähnlicher Weise auch für PHP galt. Aber Frameworks wie Node.js, Vue.js und React verhalfen JavaScript zu mehr Beliebtheit.
Ganz langsam merkt man, dass sich etwas tut. Mit der WordPress-Version 5.2 wurde die minimale PHP-Version auf 5.6.20 angehoben. Empfohlen wird bereits 7.3. Nach außen hin mag das als kleiner Schritt angesehen werden. Aber für ein CMS wie WordPress, das über mehr als ein Jahrzehnt hinweg immer rückwärtskompatibel war, ist das ein großer Schritt. Nicht zu vergessen: Bei dem riesigen Marktanteil sprechen wir von ungefähr 550 Millionen WordPress-Installationen [9] die nicht einfach so automatisch auf eine neue Version aktualisiert werden können, ohne dass eine aktuellere PHP-Version auf dem Server vorliegt. Das ist sicherlich auch eine Herausforderung für die Webhoster und nicht nur für das WordPress-Projekt als solches.
Das mit WordPress 5.2 eingeführte Feature namens PHP Error Protection kommt da gerade recht. Es soll den sogenannten White Screen of Death verhindern, falls ein Theme und/oder Plug-in einen PHP Fatal Error wirft. Das hilft schonmal gegen Totalabstürze.
Es geht also in die richtige Richtung. Noch 2019 soll die minimale benötigte PHP-Version auf 7.0 angehoben werden [10]. Das könnte in der Zukunft den Weg für mehr Entwicklerfreundlichkeit ebnen. Aber dem Wolpertinger WordPress sind schon Hasenohren gewachsen. Die kriegt man erstmal nicht so leicht wieder weg.
Artificial Intelligence (AI) und Deep Learning (DL)
Gehen wir noch einmal einen Schritt zurück. Mit PHP 7.0 wurde auch die Zend Engine komplett überarbeitet [11]. Der Performanceschub war deutlich spürbar. Die überarbeitete Codebasis bietet weitere Möglichkeiten für zukünftige Optimierungen, wie z. B. JIT Compilation. Tatsächlich sieht es so aus, als ob wir auch in zukünftigen PHP-Versionen mit Leistungssteigerungen rechnen können. Zumindest wurde während der Recherche zu diesem Artikel bekannt, dass JIT (Just in Time) Compilation noch in PHP 8.0 Einzug halten wird [12]. Das könnte die Tür für maschinelles Lernen, 3D-Rendering, 2D-Rendering und Datenanalyse öffnen.
Deep Learning und künstliche Intelligenz werden Einzug ins Web und damit auch in WordPress halten. Zuerst in Form von Plug-ins. Vorzeigeprojekte existieren bereits. Das Plug-in Watsonfinds [13] kann z. B. anzeigen, welche Emotionen ein auf Englisch geschriebener Text in WordPress bei Lesern auslösen könnte.
Natürlich läuft das Programm nicht auf dem Webserver direkt, sondern greift über eine Schnittstelle auf Watson zu, ein Computerprogramm von IBM aus dem Bereich der künstlichen Intelligenz. Was aber, wenn zukünftige PHP-Versionen ebenfalls für solche Zwecke genutzt werden könnten? Auf dem Großteil der Server ist PHP vorinstalliert. Python nicht immer.
Ob PHP allerdings der Programmiersprache Python den Rang ablaufen kann, ist mehr als fraglich. Nicht zuletzt wegen ihrer Beliebtheit im Bereich Deep Learning ist sie in den vergangenen Jahren zu einer der am schnellsten wachsenden Sprachen geworden. Das zumindest kann man der zuvor genannten Entwicklerumfrage ebenfalls entnehmen. Mal sehen, ob es ein Kopf-an-Kopf-Rennen wird.
Modulbauweise statt Wolpertinger
Was alle modernen Frameworks gemeinsam haben, ist Folgendes: Sie sind modular und nutzen Paketmanager. In der sich immer schneller drehenden Welt ist es für jeden von uns Entwicklern von Vorteil, wenn wir das Rad nicht immer neu erfinden müssen und stattdessen bereits vorhandenen Code nutzen können. Sicher bringt das auch Nachteile mit sich, wie man in der Vergangenheit bei npm sehen konnte. Nach dem Löschen von Mikromodulen scheiterten davon abhängige, oft populäre Module beim Build-Vorgang [14].
WordPress aber fehlt so eine Modulbauweise gänzlich. Erst durch die Einführung von Gutenberg (und React) hielten gängige Entwicklungsstandards Einzug in WordPress. Zumindest in den von Gutenberg abhängigen JavaScript-Dateien.
Wünschenswert wäre ein Paketmanager für WordPress, in den alle Plug-ins, Themes, aber auch Gutenberg-Blöcke einfließen würden. Auch WordPress selbst könnte in ein einzelnes Kernmodul und weitere Submodule aufgeteilt werden. Das würde zum einen die Komplexität des Gesamtsystems verringern und zum anderen ein neues Publikum ansprechen. Und zwar Enterprise-Kunden.
WordPress genießt bereits ein sehr großes Vertrauen beim Endnutzer. Jedoch – wie erwähnt – nicht bei den Entwicklern. Das verhindert den Einsatz im Enterprise-Bereich. Anfang 2017 hat die Website www.smashingmagazine.com von WordPress auf Hugo umgestellt [15]. Sie konnten einfach nicht die gleiche Performance wie mit diesem Static Site Generator erreichen. Das liegt natürlich in der Natur der Sache selbst (PHP kann nie schneller sein als eine statische Seite), aber die Zielgruppe ist auch ein andere. Wir haben es hier nicht mehr nur mit Bloggern zu tun. Viele kleine Blogs haben sich in der Vergangenheit zu riesigen Seiten entwickelt. Es wäre schön, wenn diese bei WordPress bleiben würden. Selbst, wenn sich die Anforderungen ändern.
Wie ein Blick auf Google Trends zeigt (Abb. 2), schrumpft das Interesse an WordPress [16]. Ziel könnte es in Zukunft also sein, auch andere Nutzergruppen zu erreichen. Das wiederum würde sicherlich auch den Bloggern zugutekommen.
Abb. 2: Google Trends zeigt ein schrumpfendes Interesse an WordPress
WordPress stirbt aus
Ein weiteres Szenario ist, dass WordPress stirbt und vergessen wird. Dann wäre es in Zukunft so, als hätte es nie existiert. So wie auch der Wolpertinger in Wahrheit nie existierte. Ich weiß nicht, ob das bereits in fünf Jahren passieren könnte oder erst in zehn. Oder vielleicht nie. Die Vergangenheit hat gezeigt, dass alle Big Player irgendwann einmal gefallen sind. Facebook ist ja im Moment auch am straucheln. Rein theoretisch könnte es deshalb auch WordPress erwischen. Das bedeutet erst einmal nichts. WordPress stirbt nicht sofort. Genauso wenig wie Facebook von heute auf morgen verschwinden wird. Denn was uns die Vergangenheit auch gelehrt hat, ist, dass man keine Zukunftsprognosen aufgrund vergangener Ereignisse machen soll.
WordPress bis 2022 …
Wie könnte man das also alles zusammenfassen?
-
Im Jahr 2022 wird WordPress einen viel größeren JavaScript-Anteil haben als heute. Daran ist der Gutenberg-Editor nicht ganz unschuldig. Durch die Integration von React werden Theme- und Plug-in-Entwickler das Framework ebenfalls verstärkt nutzen (müssen).
-
Blöcke lassen sich zukünftig nicht nur von WordPress, sondern auch von anderen CMS nutzen.
-
Die Einführung von Workflows, Mehrbenutzerbearbeitung à la Google Docs und Mehrsprachigkeit spricht eventuell neue Zielgruppen an und lässt WordPress weiterwachsen.
-
Durch den weiteren Ausbau des REST-API und die Beliebtheit von GraphQL werden sich Frontend und Backend vermutlich weiter voneinander entkoppeln. Einen Trend dazu gibt es bereits jetzt:
Gatsby [17] kann statische Seiten aus WordPress-Inhalten generieren.
Frontity [18] soll ein auf React basierendes Framework zum Entwickeln von WordPress-Themes werden.
… bis 2024 …
Bleibt die Frage, wie es danach weiter geht.
-
Der Einsatz von mehr JavaScript zieht sicher mehr JavaScript-Entwickler an.
-
Um weiterhin auch PHP-Entwickler anzuziehen, wären ein modularer Aufbau und die Einführung moderner Programmierparadigmen wünschenswert. Das könnte eine neue Zielgruppe (Enterprise-Kunden) anziehen.
-
Wir werden mehr AI und DL sehen.
… und darüber hinaus
Wer weiß, vielleicht besteht WordPress in Zukunft nur noch aus Gutenberg. Mit austauschbarem Backend. Denn wenn der Editor allein lauffähig ist, wäre der jetzige WordPress-Kern obsolet. PHP-Entwickler könnten sich dann anderen Frameworks wie Laravel zuwenden. Oder es kommt plötzlich ein zweiter Matt Mullenweg mit eigenem CMS daher, das alles Bisherige in den Schatten stellt. Oder wir bekommen mit WordPress den Überwolpertinger in Form eines Betriebssystems für das Web, das die Menschheit in das nächste Jahrhundert katapultiert, weil die KIs im Hintergrund die größten Probleme der Menschheit lösen.
Alles ist denkbar und trotzdem ist die Zukunft – wie anfangs erwähnt – nicht vorhersagbar. Es bleibt also spannend!
Links & Literatur
[1] https://w3techs.com/technologies/history_overview/content_management/all
[2] https://singularityhub.com/2016/04/05/how-to-think-exponentially-and-better-predict-the-future/
[3] https://insights.stackoverflow.com/survey/2019
[4] https://www.drupal.org/docs/8/modules/gutenberg
[5] https://laravel-news.com/laraberg-editor
[6] https://wptavern.com/gutenberg-plugin-for-octobercms-now-in-beta
[7] https://www.ilovewp.com/blog/plugins/an-analysis-of-18087-wordpress-org-plugins/
[8] https://wordpress.tv/2018/12/27/state-of-the-word-2018/
[9] Als Ausgangswert diente der Counter von https://www.internetlivestats.com
[10] https://make.wordpress.org/core/2018/12/08/updating-the-minimum-php-version/
[11] https://github.com/tpunt/PHP7-Reference#performance
[12] https://blog.krakjoe.ninja/2019/03/php-gr8.html
[13] https://wordpress.org/plugins/watsonfinds/
[15] https://www.smashingmagazine.com/2017/03/a-little-surprise-is-waiting-for-you-here/
[16] https://trends.google.com/trends/explore?date=all&q=%2Fm%2F02vtpl,%2Fm%2F012l1vxv
[18] https://frontity.org